<template>
	<uni-popup ref="tipsShow" type="center">
		<view>
			<text>人生若只如初见，何事秋风悲画扇</text>
		</view>
	</uni-popup>
</template>
<script>
	import indexApi from "@/apis/apiList/indexApi.js"
	import liveApi from "@/apis/apiList/liveApi.js"
	import {
		initTIM,
		addMessageListener,
		removeMessageListener
	} from "@/apis/IM.js"

	export default {
		data() {
			return {
				tipsShow: null
			}
		},
		onLaunch: function() {


			// console.warn('当前组件仅支持 uni_modules 目录结构 ，请升级 HBuilderX 到 3.1.0 版本以上！')
			console.log('App Launch')
			// uni.clearStorage()
			// adb connect 127.0.0.1:7555
			// 查询字典
			if (!uni.getStorageSync('dict')) {
				indexApi.getSystruthList().then(res => {
					uni.setStorageSync('dict', res.data)
				})
			}
			const systemInfo = uni.getSystemInfoSync();
			if (systemInfo.system.indexOf('Android') !== -1) {
				getApp().globalData.appTop = `${uni.getSystemInfoSync().statusBarHeight}px`
				plus.device.setWakelock(true)
			}
			const addparmeList = [{
				text: "难以入睡",
				value: "难以入睡"
			}, {
				text: "冲动易怒",
				value: "冲动易怒"
			}, {
				text: "胡思乱想",
				value: "胡思乱想"
			}, {
				text: "伤害自己",
				value: "伤害自己"
			}, {
				text: "食欲不振",
				value: "食欲不振"
			}, {
				text: "周身酸痛",
				value: "周身酸痛"
			}, {
				text: "无法沟通",
				value: "无法沟通"
			}, {
				text: "恐惧社交",
				value: "恐惧社交"
			}, {
				text: "全身无力",
				value: "全身无力"
			}, {
				text: "迷惘无助",
				value: "迷惘无助"
			}, {
				text: "逐渐消瘦",
				value: "逐渐消瘦"
			}, {
				text: "暴饮暴食",
				value: "暴饮暴食"
			}, ]
			if (!uni.getStorageSync('addparme')) {
				uni.setStorageSync('addparme', addparmeList)
			}
		},
		onShow: function() {
			console.log('App Show')
			// 获取用户签名
			liveApi.membergetLiveTokens({
				id: `${uni.getStorageSync('user').id}`
			}).then(res => {
				// 初始化腾讯云IM
				this.initTencentIM(res.data.code);
			})
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			async initTencentIM(userSig) {
				console.log(1);
				try {
					// 替换为你的腾讯云IM配置
					const options = {
						SDKAppID: 1400752704, // 你的应用SDKAppID
						userID: `${uni.getStorageSync('user').id}`, // 当前用户ID
						userSig: userSig // 当前用户签名
					};
					console.log(2);

					// 初始化TIM
					await initTIM(options);
					console.log(3);

					// 添加全局消息监听
					this.messageListener = (event, data) => {
						console.log('收到TIM事件:', event, data);

						// 根据事件类型处理不同消息
						switch (event) {
							case 'MESSAGE_RECEIVED':
								this.handleNewMessage(data);
								break;
							case 'MESSAGE_REVOKED':
								this.handleRevokedMessage(data);
								break;
							case 'CONVERSATION_UPDATED':
								this.handleConversationUpdate(data);
								break;
							case 'KICKED_OUT':
								this.handleKickedOut(data);
								break;

								// 其他事件处理...
						}
					};

					addMessageListener(this.messageListener);

				} catch (error) {
					console.error('初始化腾讯云IM失败:', error);
				}
			},

			// 处理新消息
			handleNewMessage(messages) {
				// messages 是消息数组
				messages.forEach(message => {
					console.log('处理新消息:', message);
					// 这里可以根据消息类型做不同处理
					// 例如: 文本消息、图片消息、自定义消息等

					// 示例: 显示通知
					if (uni.getSystemInfoSync().platform === 'android') {
						// Android通知
						plus.push.createMessage(message.nick || message.from, message.text, {
							title: '新消息',
							cover: false
						});
					} else {
						// iOS或其他平台通知
						uni.showToast({
							title: `新消息: ${message.text}`,
							icon: 'none'
						});
					}
				});
			},

			// 处理撤回消息
			handleRevokedMessage(messages) {
				messages.forEach(message => {
					console.log('消息被撤回:', message);
					// 处理消息撤回逻辑
				});
			},

			// 处理会话更新
			handleConversationUpdate(conversations) {
				console.log('会话更新:', conversations);
				console.log(this.$refs);
				this.$refs.tipsShow.open('center')
				// 处理会话更新逻辑
			},

			// 处理被踢下线
			handleKickedOut(data) {
				console.log('被踢下线:', data);
				uni.showModal({
					title: '提示',
					content: '您的账号在其他设备登录，已被踢下线',
					showCancel: false,
					success: () => {
						// 跳转到登录页或其他处理
					}
				});
			}
		},

		beforeDestroy() {
			// 移除消息监听
			if (this.messageListener) {
				removeMessageListener(this.messageListener);
			}
		}
	}
</script>
<style lang="scss">
	/*每个页面公共css */
	@import '@/uni_modules/uni-scss/index.scss';
	@import '@/static/customicons.css';
	// @import '@/static/tailwind.css';
	@import '@/static/common.css';

	// 设置整个项目的背景色
	page {
		--x-font-size-xs: 24rpx;
		--x-font-size-sm: 28rpx;
		--x-font-size-md: 32rpx;
		--x-font-size-lg: 36rpx;
		// background-color: #f5f5f5;
		background-image: url("/static/test/bg.png");
		background-size: contain;
		background-color: #F3FAFF;
		background-repeat: no-repeat;
		font-size: 24rpx;
	}

	view {
		box-sizing: border-box;
	}
</style>